Linear error compensator for numerically controlled machine tools

ABSTRACT

Within a pulse-counting numerical control system for a machine tool, a signal modifier is connected to effect the addition or subtraction of a predetermined number of pulses to the control system to compensate for repeatable linear errors that may appear in the machine&#39;&#39;s slidable members.

United States Patent Inventor Richard E. Stobhe Greenfield, Wis.

Appl. No. 856,042

Filed Sept. 8, 1969 Patented Oct. 12, 1971 Assignee Kearney & TreckerCorporation West Allis, Wis.

LINEAR ERROR COMPENSATOR FOR NUMERlCALLY CONTROLLED MACHINE TOOLS 4Claims, 11 Drawing Figs.

u.s. c1 ..235 151.11, 318/600, 318/569 Int. Cl 1102 1 54, G06f 15/46Field of Search 235/1511,

[56] References Cited Primary Examiner-Malcolm A. Morrison AssistantExaminer-Edward .1. Wise AttorneysDonald E. Porter, Cyril M. Hajewskiand William C. Gleisner ABSTRACT: Within a pulse-counting numericalcontrol system for a machine tool, a signal modifier is connected toeffect the addition or subtraction of a predetermined number of pulsesto the control system to compensate for repeatable linear errors thatmay appear in the machinefs slidable members.

REFERENCE COUNTER VELOCI INPUT OIRCU l T COMPARATOR POSlTlON REGISTERCOMMAND PHASE 2.6

C OU N TER DIGITAL- ANALOG/- CONVERTER P051 TION RECTISTE minimum 12I97! 3,612,840

SHEET 10F 7 I l 7 l8 g 22 H 1 l5 i 25 I5 ,24 A 20 .1 M "0-. 26

P lk I", In In '"f K H u n, lb k -THER MAL ELONGIATION ERRoR INCHESELONGATION OF X AXLS SLIDE WITHOUT COMPENsAI Fler9 TH RMA LON ATION OF X3x15 fimog WITH Cowman-19g IS w 194 19c TIIIIIIIIIIIKIII X Axls SunsINCREMENTS ZQ QEQQ 40 INCH RANGE TTORNEY PAIENTEUnm 12 m1 SHEET 4 0F 7PATENT EDEN 121911 3,612,840

' SHEET 5 [1F 7 UNI TS DECADE FIGOD INPUT FLIP 1-101 REPRE5ENT$ P111555STATE BINARY DECIMAL .10 :1. I .OL .001 .0001

FIG 5 P/cHA/w [570555 A rmQ/vEY PATENTEDUU 12 I97! 3,612,840

SHEET BUF 7 C P p |67/ ./|66 (NORMAL COUNT STEERING 8 GATE 55 5 I7662(CLOOK) 60) COMMAND 05m 5 *NC- DC 5| FROM COUNT 52 467 CONTROL |7Q(DOUBLE COUNT STEERINGF HQ- 6 GrATE 56 INVEN TOR RICHARD ESTQBBE TTOR NEY PATENTEUum 12 197i SHEET 7 BF 7 CLOO A b D A 0 1 .0000 0000 b I O 1-OOOO Q U 0000 O 1 E K 0 LJ L I 1 F R l I I v Gr 1. -L 1 O H I o A O -ll l b o A J U o K I I l I O 1 b c O L 1 M 0 1 F cT 7 INVENTOR P/cHA/w5.570555 TTDRNEY Jhmm-M LINEAR ERROR COMPENSATOR FOR NUMERICALLYCONTROLLED MACHINE TOOLS BACKGROUND or THE INVENTION signal theoccurrence of compensating control pulses at certain predeterminedincrements of machine member movement. Gating circuitry had to beprovided for each spacedapart increment of travel along the total rangeof member movement at which compensation was desired. As the range ofmachine member movement is ever increasing in the machine tool industry,the gating circuitry is becoming a more and more costly item to supply.The present invention evercomes the problem of mounting gating circuitrycosts by providing a linear error compensator that uses a minimum ofgating circuitry components. 1

SUMMARY OF THE INVENTION According to this invention, there is provideda machine tool comprising a pair of members carried for relativemovement; a servomotor connected to effect relative movement between thesaid members; a numerical control system operative to provide outputcommand signals connected to actuate the servomotor for effectingpredetermined relative movement between the members; and a linear errorcompensator actuated in response to predetermined incremental relativemovement between the members and arranged to vary the output of thecommand signals from the control system, selectively andpredeterminately.

A principal object of this invention is to provide an electrical errorcompensator for a numerical control system of a machine tool.

Another object of the invention is to provide an auxiliary signalcontroller operable to compensate for thermal distortion in thecooperatively associated part of a machine tool.

Another object of the invention is to provide a signal modifrerpredeterminately operative to modify a positional command signal from anumerical control system.

Another object of this invention is to provide a signal moditier thatmaterially reduces the number of components used to correct for linearmachine errors thereby effecting a substantial reduction in themanufacturing cost.

BRIEF DESCRIPTION OF THE DRAWINGS FIG. I is a view in front elevation ofa machine tool incorporating the invention;

FIG. 2 is a schematic diagram of a numerical control system whichincorporates the invention in combination with a movable member;

FIGS. 3 and 4, taken together as shown in FIG. 5, present the detailedlogic circuit of the linear error compensator in accordance with theprinciples of the invention;

FIG. 6 is a schematic representation of the normal and double countsteering gates of FIG. 1;

FIG. 7 is a timing diagram of the waveforms useful in explaining theaction of the linear error compensator circuit;

FIG. 8 shows the symbolic representation of six decades of the axisposition register, with each decade having a distinct decimal weighting;

FIG. 8A shows the symbolic representation of a binarycoded-decimalcounter;

FIG. 8B is a table of binary-coded-decimal states of the decaderepresenting the unit decimal digits; and,

DESCRIPTION OF THE PREFERRED EMBODIMENTS Referring now to the drawings,and more specifically to FIG. 1 thereof, illustrating a machine toolincorporating the features of the present invention. As there shown, themachine tool is provided with a horizontally extending bed I2 and avertical upright or column 13 secured thereto constituting a principalsupport frame. Horizontal ways 15 presented by the upper portion of thebed 12 slidably support a worktable 16 for selective horizontalmovement. The usual gibs (not shown) are arranged in well-known mannerto retain the worktable 16 in slidable engagement with the horizontalbed ways 15 for movement along the horizontal X-axis.

A rotatable tool-receiving spindle 18 is joumaled to rotate about ahorizontal axis in a spindle head 19 mounted for vertical slidingmovement along vertical ways 20 presented by the column upright 13. Foreffecting selective verticalmovement of the spindle head 19, a rotatableelevating screw 22 journaled at its opposite ends in an overhangingportion of the column l3and the bed 12 engages a cooperating nut (nowshown) carried by the spindle head 19. The usual power drives (notshown) are respectively connected to rotate the tool spindle 18 at aselected rate, and to rotate the elevating screw-22 for effectingvertical movement of the spindle lead I9.

Thus, to perform machining operations, the tool spindle 18 isselectively movable along a vertical axis relative to a workpiece (notshown) secured to the worktable 16 which is movable along the horizontalaxis. For moving the worktable I6, an internally threaded nut 25 fixedlysecured thereto is threadedly engaged by a cooperating rotatabletranslating screw 24 joumaled to rotate in the bed 12. A servomotor 26mounted within the rightward end of the bed 12 is connected to rotatethe table screw 24 for moving the worktable 16 at a selected rate and ina selected direction of movement along the X-axis.

A linear position feedback transducer 28 is operatively interconnectedbetween the bed 12 and horizontally movable worktable 16 carriedthereby, as shown in FIG. I. The position feedback transducer 28 can beof a bridge network type as shown and described in US Pat. No. 3,010,063issued to .I. M. Rhodes on Nov. 21, I96l, or of a Selyn type, both ofwhich are well-known in the art.

The numerical control system 30 schematically illustrated in FIG. 2 isof the well-known pulse-counting type produced commercially by severaldifferent manufacturers and incorporating well-known digital techniques.To employ digital control techniques, the numerical control systemincludes a means to generate the pulse signals. These pulses arecyclical in nature with each complete cycle or pulse of the signalrepresenting an increment of movement of the working tool or theworkpiece. For example, each pulse signal when utilized by the controland applied to the machine tool may cause 0.000] inch of movement of theworktable I6 mounting the workpiece.

The number of pulses so generated may thus be considered a function ofthe amount of movement of the worktable since each pulse causes acertain incremental movement. Likewise, the rate of frequency at whichthe pulses are generated is a function of the velocity of the worktableas the pulse rate represents the number of incremental movements perunit of time.

The numerical control system, shown in FIG. 2, controls the relativeposition of the worktable 16 by keeping track of the total number ofpulses generated, for example, by feeding the counts to counters orregisters. Thus, a counter controlling movement along the X-axis willreceive [0,000 counts for each inch of travel of worktable 16 along thataxis. By the use of preset counters or comparators, which provide anactuating signal after the preset count is attained in the counter,control may direct worktable 16 into a desired location by moving theworktable until the preset count is recorded on the counter. Theactuating signal from the counter is then used to arrest the movement ofthe worktable.

In a similar manner, control 30 controls the velocity or rate ofmovement of worktable 16 along the X-axis by means of circuitryresponsive to the frequency at which the pulses are generated, or thepulse rate. The responsive circuitry moves worktable 16 through thenumber of incremental movements per unit of time corresponding to thepulse rate.

A program is encoded or punched on a tape 31 so as to provide data inputsignals to control 30 by means of a tape reader 32. In addition to thetape reader 32, the input circuitry to control 30 includes a clockoscillator 34. Clock oscillator 34 produced stable high-frequency pulsesignals, for example, a pulse train having a frequency of 250 kilohertz.Each pulse of this pulse train when employed by control 30 represent0.0001 inch of movement of the worktable 16. The pulse signals fromclock oscillator 34 are in the form of symmetrical square waves; thatis, the interval of each pulse signal, or the pulse width, is equal tothe interval between pulses.

The pulses are formed by periodically changing the output state of clockoscillator 34 from one state to another state. For example, the clockoscillator may initially provide no output signal, then provide anoutput signal for the interval of a pulse, then revert to a state ofproviding no output signal for a similar interval, then provide anoutput signal for the interval of a second pulse, and so on. Only theprovision of the output signal is important to digital control, not themagnitude thereof. In digital control terminology, the two states of theoutput signal of the clock oscillator and other components of control 30are termed the logic 1 signal state and the logic signal state. It maybe noted that, depending on the type of digital control techniqueutilized the logic signal state may or may not correspond to theelectrical signal state. Thus, a logic 1 signal may indicate thepresence of an actual electric signal or may indicate the absence of anactual electrical signal.

The output from clock oscillator 34 is supplied to other portions ofcontrol 30 and to reference counter 35, via conductor 36. Referencecounter 35 produces a plurality of lower frequency of pulse signalswhich are employed by the other components of control 30.

For reasons of simplicity, FIG. 2 shows the position control circuitryand the velocity control circuitry for only one axis of movement ofmachine tool. Thus, the position control circuitry and the velocitycontrol circuitry controlling and regulating the position and velocityof worktable 16 along the X- axis of the machine tool are shown in FIG.2.

Tape reader 32 provides a position command signal via conductor 37 toposition command register 38. This input signal presets that register orcounter in accordance with the desired position of worktable 16 on theX-axis.

The position control circuitry also includes an axis position register39 which records the actual movement of worktable 16 in terms of thepulse signals representing 0.000] inch of movement. Since one pulsesignal or count from clock oscillator 34 represents 0.0001 inch ofmovement, to command a movement of worktable 16 one inch along theY-axis, 10,000 counts must be added to or subtracted from the count onposition register 39. Whether the counts will be added or subtracteddepends on the desired direction of movement of worktable 16. The pulsesignals or counts are supplied to axis position register 39 in a mannerhereinafter described.

The output signal from position command register 38 and axis positionregister 39 are supplied to a comparator 40 which determines whether thenumber of counts in the axis position register 39 is greater or lessthan the number of counts in the position command register 38.Comparator 40 provides an output signal to conductor 42 indicating thatthe position registered in the axis position register 39 is greater thanthe position registered in the command position register 38. Comparator40 provides an output signal to conductor 43 indicating the positionregistered in the axis position register 39 is less than the positionregistered in the axis position register 38. When the positionregistered in the axis position register 39 equals the positionregistered in the command position register 38, indicating thatworktable 16 is in the command position, comparator 40 provides a signalin conductors 42 and 43 which operates control 30 to stop the movementof worktable 16.

As previously noted, control 30 employs the frequency at which thepulses representing 0.0001 inch of movement are generated to control thevelocity of worktable 16. As control 30 moves worktable 16 0.0001 inchesfor every such pulse generated, the greater the number of pulsesgenerated per unit of time, the greater the number of incrementalmovements per unit of time and the greater the velocity of worktable 16.

To detect the frequency of rate at which pulses are being generated, thevelocity control circuitry of control 30 employs a pair of low-frequencypulse trains as carrier signals. The phase of this signal remainsconstant. The other carrier signal is responsive to the rate of pulsegeneration and the phase of this other carrier signal may be phaseshifted at a rate equal to the rate of pulse generation.

As the rate of change of the phase shift difference between the constantphase reference carrier signal and the phase shifted carrier signal isequal to the rate of pulse generation, this rate of change may bedetected and a signal corresponding thereto provided to the hydraulicmotor energizing worktable 16 to move worktable 16 through the requirednumber of incremental movements per unit of time. A feedback signal isprovided in the velocity control circuitry of control 30 to indicateactual movement of worktable 16, also in terms of a phase shift of thesecond carrier signal. In the normal manner of a regulator, the feedbacksignal operates to shift the phase of the carrier into conformity withthe phase of the reference carrier signal, thereby indicating that theworktable 16 is moving at the desired velocity.

The velocity control circuitry of control 30 includes a velocity controlinput circuit 45 which receives and stores the velocity input commandsignals from tape reader 32, via conductor 46.

The velocity input circuitry 45 also receives the high frequency pulsesignals from clock oscillator 34, via conductor 47. These high frequencypulse signals are formed by velocity control input circuit 45 into anoutput pulse train, the frequency, or rate of pulse generation, of whichcorresponds to the desired speed of worktable 16. For example, velocitycontrol input circuit 45 may reduce the 250 kilohertz pulse train ofclock oscillator 34 to a 10 kilohertz output signal. The 10 kilohertzfrequency of this signal represents a desired speed of one inch persecond of worktable 16, since 10,000 pulses are being generated eachsecond, each pulse being equal to 0.0001 inches of movement of worktable16.

The pulse train output signal of velocity control input circuit 45 inconductor 48 and the output signals from comparator 40 are supplied tocount control circuit 50. Count control circuit 50 thus receives aninput signal relating to the desired rate of movement of worktable 16,as provided by the 10 kilohertz pulse train from velocity control inputcircuit 45 and a signal relating to the direction of such movement, asprovided by comparator 40. Circuit 50 provides an output signal inconductors 51 and 52 in response to the input signals thereto whichcontrols the operation of a normal count steering gates" 55 and adouble-count steering gates" 56, respectively, which in turn control theoperation of command phase counter 60.

Command phase counter 60 generates the second or phase shifted carriersignal employed by the velocity control circuitry of control 30. Commandphase counter 60 receives the 250 kilohertz pulse train from clockoscillator 34, via conductor 62 and divides this 250 kilohertz inputsignal by 1,000 to produce a 250 hertz low-frequency pulse train carriersignal. The input signal from count control circuit 50 operates commandphase counter 60 to advance or retard the phase of the 250 hertz carriersignal at a rate equal to the frequency of the pulse train signal fromvelocity control input circuit 45. The

direction in which the signal is shifted, that is, whether the signal isadvanced or retarded in phase, is determined by a signal from comparator40 to count control circuit 50 and determines the direction of movementof worktable 16.

To advance or retard the phase of the 250 hertz carrier signal fromcommand phase counter 60, the pulse train signal from count control 50is employed to affect the divide by 1,000 operation of command phasecounter 60, and specifically, the application of the 250 kilohertzpulses from clock oscillator 34 to the counter. If, as in the previouslyused example, it is desired to move worktable 16 at a velocity of oneinch per second, the phase of the 250 hertz carrier signal must be phaseshifted by a total of 10,000 pulses over the time period of a second.The 250 hertz carrier signal of command phase counter 60 must be phaseshifted one pulse every 100 microseconds in order to provide therequired phase shift rate of 10,000 pulses per second. It may be notedthat a phase shift of 10,000 pulses represents a phase shift of tencomplete cycles of 250 hertz carrier signal.

This phase shift is provided by utilizing the 10,000 hertz pulse trainsignal from count control 50 to affect the application to command phasecounter 60 of one pulse out of every 25 pulses of the 250 kilohertz, or250,000 hertz, clock oscillator 34 pulse train. If it is desired toretard the phase of the 250 hertz carrier signal of command phasecounter 60, the count control 50 generates the required signal pulsestransmitted via a conductor 51 to the normal count steering gates 55.From normal count gates 55, the signal continues via conductor 63 toclock one out of every 25 clock oscillator pulses supplied to commandphase counter 60, thereby retarding the generation and phase of thecarrier signal provided by command phase counter 60 by the amount of theone blocked clock oscillator pulse. Over the period of a second, 10,000clock oscillator pulses supplied to command phase counter 60 will beblocked, thus providing the desired rate of change, or phase shift, tothe 250 hertz carrier signal of command phase counter 60. If it isdesired to advance the phase of the 250 hertz carrier signal of commandphase counter 60, the count control 50 generates the required signalpulses transmitted via a conductor 52 to the double-count steering gates56, the signal continues via conductor 64 to operate command phasecounter 60 to add the equivalent of one clock oscillator pulse every 25clock oscillator pulses supplied to command phase counter 60, therebyadvancing the phase of the carrier signal by the amount of the addedclock oscillator pulse.

As each of the 250 kilohertz clock oscillator pulses added or blocked inthe advancing or retarding the 250 hertz second carrier signal ofcommand phase counter 60 by count control 50 represents 0.0001 inch ofmovement of worktable 16, a signal corresponding to the additional orblocking of these pulses is supplied via conductor 65 to axis positionregister 39 which records the movement of worktable 16. The movement ofworktable 16 and the addition or removal of pulses to axis positionregister 39 will be such as to bring the number of pulses recorded inaxis position register 39 into conformity with the position recorded inposition command register 38. Thus, if the position registered inposition command register 38 commands one inch of movement of worktable16 along the X-axis, 10,000 pulses will be added to axis positionregister 39 by the resulting action of count control circuit 50.

The phase shifted signal from command phase counter 60 in conductor 66is fed to transducer 28. Transducer 28 is responsive to the actualmovement of worktable 16 along ways 15 and provides a phase shift to theoutput signal from command phase counter 60 proportional to thismovement. This phase shift to the output signal of command phase counter60 is opposite to the phase shift provided by count control 50 as itindicates actual movement of worktable 16. This phase shifting of theoutput signal of transducer 28 is applied to the already phase shiftedcarrier signal of command phase counter 60 and acts to restore the 250hertz signal from command phase counter 60 to its original phase.

The output signal from transducer 28 is supplied through a wave shaper68 to discriminator 70. Wave shaper 68 restores the signal fromtransducer 28 to a square wave signal. Discriminator 70 also receives a250 hertz signal from reference counter 35 in conductor 7l. The 250hertz signal to discriminator 70 from reference counter 35 forms thereference carrier signal. The phase of the reference carrier signalremains constant. Discriminator 70 acts to determine the phasedifference between the constant phase reference carrier signal fromreference counter 35 and the phase shifted feedback signal fromtransducer 28 and to supply a digital difference signal corresponding toanalog converter 72.

Digital to analog converter 72 converts the digital difference signalbetween the constant phase reference signal and the phase shiftedfeedback signal into an analog output signal proportional to the digitaldifference signaland capable of operating servo amplifier 74. Servoamplifier 74, in turn, operates servo valve 75 and hydraulic motor 26connected to lead screw 24, to move worktable l6 fastened to nut 25along the screw at a velocity corresponding to the frequency of thepulse train output signal of velocity control input circuit 45.Tachometer 76 connected to hydraulic motor 26 and servo amplifier 74assists in the control of the velocity of worktable 16.

FlGS. 3 and 4, taken together as shown in FIG. 5, present the detailedlogic circuit of the linear error compensator 78.

FIG. 3 illustrates the portion of the linear error compensator 78 whichprovides a plurality of compensating pulse rates which are selectivelyused to provide the required correction to the numerical control system30. The flip-flops K, L and C shown in FIG. 3 are of the standardbistable type well known in the art.

The input and output signals to the flip-flop are divided into twogeneral groups; the set" input signals controlling the fset output andthe reset input signals controlling the reset output signal. The setoutput signal and the reset output signal are mutually exclusive so thatif a signal having the logic state of 1 appears at the set outputterminal S, a signal having the logic state of 0 must appear at thereset output terminal R, and vice versa. When, for example, the setoutput signal goes from a logic 1 state to a logic 0 state, the resetoutput goes from a logic 0 state to a logic 1 state. When the set outputgoes from a logic 0 state to a logic 1 state, the reset output goes froma logic 1 state to a logic 0 state.

The state and change of the set output signal at the set output terminalS is controlled by three input signals; the setsteering signal appliedto terminal SS, the set trigger signal applied to terminal ST, and thereset input signal applied to terminal RI.

The set-steering signal applied at terminal SS is so termed because itcontrols or steers the operation of the flip-flop. Thus, the steeringsignal applied to terminal SS of the tlip-flop must be a logic 0 signalfor the flip-flop to be operated by the set trigger signal applied toterminal ST. If the set-steering signal at terminal SS is a logic 1signal, the set output signal at terminal S will remain in the previousstate, whatever that state may be, regardless of the set trigger signalapplied to terminal ST. A set-steering signal of the logic state of l issaid to block the flip-flop. Further, when the setsteering signal atterminal SS is a logic 0 signal, and the set trigger signal applied toterminal ST is a logic 0 signal or changes from a logic 0 signal stateto a logic 1 signal state, the set output signal at terminal S alsoremains in its previous state.

When, however, the set-steering signal is in the logic 0 signal stateand the set trigger signal applied to the flip-flop at terminal STchanges from a logic 1 signal state to a logic 0 signal state, the setoutput signal at terminal S assumes the logic 1 signal state, if it isnot already in that state. As the set output signal at terminal S andthe reset signal at terminal R are mutually exclusive, the reset outputsignal goes to the logic 0 signal state when the set output signal goesto the logic 1 signal state. If the set trigger signal remains at thelogic 0 signal state or changes from a logic 0 signal state to a logic 1signal state, no change in the set output signal at terminal S occurs.

The reset input signal to terminal R1 is not controlled or steered bythe set-steering signal so that any time the reset input signal toterminal Rl assumes the logic 1 signal state, the reset output signal atterminal R becomes a logic 1 signal and the set output signal atterminal S becomes a logic signal.

As shown in FIG. 3, the 250 kilohertz clock signal is applied onconductor 80 to the set trigger terminal 82 and reset trigger terminal83 of flip-flop K. The clock pulses and the interaction of the K and Lflip-flops with their associated gating are used to produce four desiredpulse trains. The pulse trains are comprised of one, two, three and fourpulses.

Reference should be made to FIG. 7 which includes a timing diagram ofthe waveforms useful in explaining the operationof the linear errorcompensator 78. Assuming now that the K and L flip-flops are in theirreset condition with a logic 1 signal at their reset tenninals 84 and85, respectively, and a logic 0 signal at the set terminals 86 and 87,respectively. The reset steering signal of flip-flop K is the resetoutput signal of flipflop K. Assume now the clock pulse A is suppliedthrough conductor 80 to the set trigger 82 and reset trigger 83 offlip-flop K. Since the signal at the set steering terminal 90 offlip-flop K is at logic 0, as pulse A at the set trigger terminal 82goes from the logic state of l to the logic state of 0 it will act toset flipflop K. The reset output terminal 84 of flip-flop K isconnected, via conductor 92, to NOR gate 93 along with the set outputterminal 87 of flip-flop L, via conductor 94, and along with the clockpulse train C1. The output of NOR gate 93 is supplied through invertinggate 96 to conductor 97. The logic 0 signal from the reset outputterminal 84 of flip-flop K is to NOR gate 93 along with the clock pulseA which is in a logic 0 state. The signal from the set terminal 87 offlip-flop L which is at a logic 0 state during the duration of pulse Ais also supplied to NOR gate 93. As all three inputs to NOR gate 93 areat the logic 0 state, the state of the output signal of this gate goesto the logic state of l. At the end of pulse A as pulse A changes fromthe logic state of 0 to the logic state of l, the logic state of theoutput changes from logic 1 to logic 0. This single pulse is inverted byinverter gate 96 and passes along conductor 97. Pulse A is also appliedto NOR gates 98 and 99. Both of these gates are blocked by logic 1signals so pulse A is not passed through. NOR gate 98 is blocked by thelogic 1 signal coming from the reset output terminal 85 of flip-flop Lwhich is in its reset condition during the duration of pulse A. NOR gate99 is blocked by the logic 1 signal coming from the set output terminal86 of flip-flop K which is in its set condition during the duration ofpulse A.

Since flip-flop K is presently in the set condition, there is a logic 0signal at the reset output terminal 84 of flip-flop K which in turn issupplied in conductor 101 to the reset-steering terminal 103 offlip-flop K. Clock pulse B is now supplied to the set trigger 82 andreset trigger 83 of flip-flop K. As pulse B at the reset triggerterminal 83 of flip-flop K goes from the logic state of l to the logicstate of 0 it resets flip-flop K. The set output signal of flip-flop Kis connected by conductor 106 to the set-steering terminal 90 offlip-flop K. The set output signal of flip-flop K then continues viaconductor 109 to the set trigger terminal 107 and reset trigger terminal108 of flipflop L. As the set output signal of flip-flop K goes from alogic 1 to a logic 0 it will put flip-flop L in its set condition. Thereset output terminal 85 of flip-flop L is conducted via conductor 110,to NOR gate 98 along with the clock pulse train C1. The logic 0 signalfrom the reset output terminal 85 of flip-flop L is supplied to NOR gate98 along with the clock pulse B which is in a logic 0 state. As the twoinputs to NOR gate 98 are at the logic 0 state, the state of the outputsignal of this gate goes to the logic state of l At the end of pulse B,when it changes from the logic state of 0 to the logic state of l thelogic state of the output of NOR gate 98 changes from logic 1 to logicstate 0. This pulse is inverted by inverter gate 111 and passes alongconductor 112. Pulse B is also applied to NOR gates 93 and 99. NOR gate93 is blocked by the logic 1 signal coming from the set output terminal87 of flip-flop L, which is in its set condition during the duration ofpulse B, as

shown in FIG. 7. NOR gate 99 also is blockedby the logic 1 signal comingfrom the set output terminal 87 of flip-flop L via conductor 94.

Clock pulse C is now supplied to the set trigger 82 and reset trigger 83of flip-flop K. Since flip-flop K is presently in the reset conditionthere is a logic 0 signal at the set-steering terminal of flip-flop K.As pulse C, at the set trigger terminal 82 of flip-flop K, goes from thelogic state of l to the logic state of 0 it sets flip-flop K. The setoutput signal of flip-flop K is connected by conductors 106 and 109 tothe set trigger terminal 107 and reset trigger terminal 108 of flip-flopL. As the set output signal of flip-flop K goes from a logic 0 to alogic 1 state, it will have no effect on flip-flop L and flip-flop Lwill remain in its set condition. The logic 0 signal from the resetoutput terminal 85 of flip-flop L is supplied to NOR gate 98 viaconductor along with the clock pulse C. As the two inputs to NOR gate 98are at the logic 0 state, the state of the output signal of this gategoes to the logic state of l At the end of pulse C when it changes fromthe logic state of 0 to the logic state of l, the logic state of theoutput of NOR gate 98 changes from logic 1 to logic state 0 This pulseis inverted by inverter gate 111 and passes along conductor 112. Pulse Cis also applied to NOR gates 93 and 99. NOR gate 93 is blocked by thelogic 1 signal coming from the set output terminal 87 of flip-flop Lwhich is in its set condition during the duration of pulse C. NOR gate99 is also blocked by the logic 1 signal coming from the set outputtenninal 87 of flip-flop L.

The output of NOR gate 98 is also supplied via conductor 114 to NOR gate115. The output of NOR gate 93 is also supplied via conductor 117 to NORgate 115. Pulse A which is passed by NOR gate 93 and pulses B and Cwhich are passed by NOR gate 98 will be passed by NOR gate 115. Thelogic state of the output of NOR gate will change from the logic state 1to the logic state 0 as the three pulses are inverted by NOR gate 115,to form a three pulse train on conductor 118. The output of NOR gate 115is also supplied, via conductor 119, to inverter gate 120.

Clock pulse D is now supplied to the set trigger 82 and reset trigger 83of flip-flop K. Since flip-flop K is presently in the set condition,there is a logic 0 signal at the reset output terminal 84 of flip-flop Kwhich in turn is supplied in conductor 101 to the reset-steeringterminal 103 of flip-flop K. Also, since flipflop L is in the resetcondition, there is a logic 0 signal at the set output terminal 87 offlip-flop L which in turn is supplied in conductor 105 to theset-steering terminal 102 of flip-flop L. As pulse D at the resettrigger terminal 83 of flip-flop K goes from the logic state of l to thelogic state of 0 it resets flip-flop K. The set output signal offlip-flop K is connected by conductors 106 and 109 to the set triggertenninal 107 and the reset trigger terminal 108 of flip-flop L. As theset output signal of flip-flop K goes from a logic 1 to a logic 0 itwill put flip-flop L in its reset condition. The set output terminal offlip-flop L is conducted, via conductor 94, to NOR gate 99 along withthe clock pulse train C1 and the set output signal via conductor 122 offlip-flop K. As the three inputs to NOR gate 99 are at the logic 0state, the state of the output signal of this gate goes to the logicstate of l At the end of pulse D, when it changes from the logic stateof 0 to the logic state of l the logic state of the output of NOR gate99 changes from logic 1 to logic state 0 The output of NOR gate 99 alongwith the output of inverter gate is supplied to NOR gate 124. Pulse A, Band C, which is passed by inverter gate 120, and pulse D, which ispassed by NOR gate 99, will now be passed by NOR gate 124 to form a fourpulse train on conductor 125. The output of NOR gate 99 is also suppliedvia conductor 126 to the reset trigger terminal 114 of a compensationflip-flop C.

The compensation flip-flop C functions to supply a signal from its resetoutput terminal to a set of matrix output NOR gates, hereinafter to beexplained, which enables the matrix output NOR gates to pass apredetermined number of compensating pulses which are supplied from theabove described pulse trains.

FIG. 8 shows the decimal weights assigned to the various decades of theaxis position register 39. The four least significant decades representthe tenths, hundredths, thousandths and ten thousandths of an inchposition of worktable 16. When these last four decades register a zero,a 0.0000 signal pulse will originate from the axis position register 39and be supplied, via conductor 130, to the linear error compensator 78,as shown in FIG. 2. The 0.0000 signal occurring at the l.0000 inch,2.0000 inch, 3.0000 inch, etc. position on the X- axis. The details ofthe origin of the 0.0000 signal from a position register is well knownin the art. Assuming that flip-flop C is in the reset condition, asshown in FIG. 3, the 0.0000 pulse, from the axis position register 39,passes through inverter gate 132 to simultaneously supply a logic 1signal to the reset input terminals R1 of flip-flop K and I. viaconductor 133 and also to supply a logic 1 signal to the set triggerterminal 135 of flipflop C via conductor 134. The logic 1 signal at thereset input terminals of flip-flops K and L will immediately place themin the reset condition. The set output terminal 138 of flip-flop C isconnected to the set-steering terminal 139 of flip-flop C. Therefore,with flip-flop C in its reset condition, there will be a logic signal atthe set steering terminal 139. As the inverted 0.0000 signal pulse, asshown in FIG. 7 (c and (d), goes from its logic 1 state to its logic 0state, it will put flip-flop C in its set condition. With flip-flop C inits set condition, there will be a logic 0 signal at the reset outputterminal 140 of flip-flop C. This logic 0 signal is supplied to the setof matrix output NOR gates via conductor 142. This logic 0 signal isalso supplied to the reset-steering terminal 141 via conductor 143. Asshown in FIG. 7 (d and (m as inverted clock pulse D, on conductor 126,goes from its logic I state to its logic 0 state, it will put flip-flopC back in its reset condition.

As shown in FIGS. 4 and 7 (i, j, k and l the pulse trains on conductors97, 117, 118 and 125 are supplied to a compensation selection matrix 144comprising principally the output conductors 146, 147, 148, 149 and 150.Depending upon the particular error curve found in a machine, the outputconductors are predeterminately connectable to the pulse train whichwill supply the desired compensation. For example, the output conductor146 can be interconnected with the different pulse trains by insertionofa screw connector 152 between the conductor and points A, B, C or D,depending if one, two, three or four pulses of compensation are needed.If no screw connector is used there will of course be no compensatingpulses on the output connector.

The output conductors 146, 147, 148, and 150 are connected to the matrixoutput NOR gates 155, 156, 157, 158 and 159, respectively. I

The reset output signal of flip-flop C is supplied'to each of the matrixoutput NOR gates 155, 156, 157, 158 and 159. The rest of the inputs toNOR gates 155, 156, 157, 158 and 159 are connected to various flip-flopsof a binary-coded decimal counter located in the axis position register39. The signals from these various flip-flops are supplied via conductor160, as shown in FIG. 2, to the linear error compensator 78. A typicalbinary-coded decimal counter 162 is illustrated in FIG. 8A. Theparticular decade use in this embodiment of the invention is the unitdecade which represents the table position from 0 to 9 inches andmultiples of 10 thereof. If the addition of count to the decade causesthe total registered in that decade to exceed nine, as the count changesfrom nine to zero, a carry signal will be propagated to the next mostsignificant decade, increasing its registration by one.

As shown by the chart in FIG. 8B, the output of the four flip-flops ofbinary counter 162 will be in their reset state when the counterrepresents the decimal position of 0 This will occur when the table 16is at the 0, 10, 20, 30, 40, etc. inch position along the horizontalways 15. Therefore, there will be a logic 0 signal on the set outputs offlip-flops l, 2, 4 and 8. All the inputs to NOR gate 155, as shown inFIG. 4, will be at logic 0 when there is a 0 registered in the unitdecade counter 162. At this time, either one, two, three or fourcomoensating pulses, depending upon the placement of the screw .10connector 152, will be transmitted via conductor 146 through NOR gate155. The output of NOR gate will swing from logic 0 to its logic 1 stateas the compensating pulses are passed by NOR gate 155.

Similarly, the outputs of the 8, 4 and 1 flip-flops will be in the resetcondition and the 2 flip-flop will be in the set condition when thecounter represents the decimal position of 2 This will occur when thetable 16 is at the 2, i2, 22, 32, etc. inch position along thehorizontal ways 15. Therefore, there will be a logic 0 signal on the setoutputs of flip-flops 1, 4 and 8 and a logic 0 signal on the resetoutput of flip-flop 2. All the inputs to NOR gate 156 will beat logic 0when there is a 2 registered in the unit decade counter 162. At thistimeeither one, two, three or four compensating pulses, depending uponthe placement of screw connector 152 will be transmitted 'via conductor147 through NOR gate 156. The output of NOR gate 156 will swing fromlogic 0 to logic 1 as the compensating pulses are passed by NOR gate156.

Similarly, NOR gate 157 will pass compensating pulses only when thedecade counter registers a 4, I4, 24, 34 inch, etc. table position.

Similarly, NOR gate 158 will pass compensating pulses only when thedecade counter registers 6, I6, 26, 36 inch, etc. table position.

Similarly NOR gate 159 will pass compensating pulses only when thedecade counter registers 8, 18, 28, 38 inch, etc. table position.

The output conductors of NOR gate 155, 156, 157, 158 and 159 arerespectively connected to each of the compensator output NOR gates 164and 165.

NOR gates 164 and 165 function to pass the compensation pulses from thevarious matrix output gates to the desired steering gates. As shown inFIGS. 4 and 6, the output conductor 167 of NOR gate 164 is connected tothe double-count steering gates 56 and the output conductor 168 of NORgate 165 is connected to the normal count steering gates 55. Doublecount steering gates is comprised of an inverter gate 170 and a NOR gate171. Normal count steering gatesis comprised of two NOR gates and 176.

Compensator output NOR gate 164 will only pass compensation pulses whenthe commanded table position as registered on the position commandregister 38'is greater than the actual table position as registered onthe axis position register 39. When this condition exists, thecomparator 40 provides a signal along conductor 43 and to provide alogic zero signal to NOR gate 164.

NOR gate l65-will only pass compensation pulses when the commanded tableposition as registered on the position command register 38 is less thanthe actual table position as registered on the axis position register39. When this condition exists, the comparator 40 provides a signalalong conductor 42 and 181 to provide a logic zero signal to NOR gate165.

If no screw connectors 152 are inserted in the compensation selectionmatrix: 144, there will be no compensating pulses going out on outputconductors 167 and 168 and these conductors will continue to carry alogic zero signal to NOR gates 176 and 171. The normal and double countsteering gates will then be controlled by the logic state of the outputsignals on conductors 51 and 52 coming from the count control circuit50.

To advance or retard the phase of the 250 hertz carrier signal fromcommand phase counter 60, the pulse train signal from count control 50is employed to afiect the divide by 1,000 operation of command phasecounter 60, and specifically, the application of the 250 kilohertzpulses from clock oscillator 34 to the counter. If, as in the previouslyused example, it is desired to move worktable 16 at a velocity of oneinch per second, the phase of the 250 hertz carrier signal must be phaseshifted bya total of 10,000 pulses over the time period of a second. The250 hertz carrier signal of command phase counter 60 must be phaseshifted one pulse every 100 microseconds in order to provide therequired phase shift rate of 10,000 pulses per second. It may be notedthat a phase shift of 10,000 pulses represents a phase shift of completecycles of the 250 hertz carrier signal.

The phase shift is provided by utilizing the 10,000 hertz pulse trainsignal from count control 50 to affect the application to command phasecounter 60 of one pulse out of every pulses of the 250 kilohertz, or250,000 cycle per second, clock oscillator 34 pulse train. If it isdesired to retard the phase of the 250 hertz carrier signal of commandphase counter 60, the count control 50 generates the required signalpulses transmitted via a conductor 51 to the NOR gate 175 of the normalcount steering gates 55. There will be a logic zero 'signal standing onconductors 52 and consequently 178 as long as the actual position oftable 16 is greater than the commanded position as indicated by the axisposition register 39 and the position command register 38, respectively.The signal pulses on conductor 51 will be passed and inverted by NORgate 175. The output of NOR gate 175 is supplied via conductor 186 toNOR gate 176. Since there is a logic 0 signal standing on conductor 168,NOR gate 176 will invert thepulses passed by NOR gate 175.

From normal count gates 55, the signal continues via conductor 63 toblock one out of every 25 clock oscillator pulses. supplied to commandphase counter 60, thereby retarding the generation and phase of thecarrier signal provided by command phase counter 60 bythe amount of theone blocked clock oscillator pulse. Over the period of a second, 10,000

' steering gates 56. Therequired signal pulses are also transmitted viaconductors 52 and 178 to NOR gate 175 of the normal count steering gate55. The required signal pulses on conductor 52 will be inverted byinverter gate 170 and pass via conductor 187 to NOR gate 171. Sincethere is a logic 0 signal standing on conductor 167, NOR gate 171 willinvert the pulses passed by inverter gate 170. 1

The signal pulses continue via conductor 64 to operate command phasecounter 60 to add the equivalent of one clock oscillator pulse every 25clock oscillator pulses supplied to command phase counter 60, therebyadvancing the phase of the carrier signal by the amount of the addedclock oscillator pulse. Though a pulse on conductor 64 acts to effectthe addition of two pulses to the command phase counter 60, we see wealso pass a-signal pulse along conductors 52 and 178 to the normal countsteering gates 53. These pulses are passed along to the NC terminal ofthe command phase counter 60 to effect the blocking out of one of theclock pulses for every two that are added by. the pulse along conductor64. So, in effect, we add the equivalent of one clock oscillator pulseto every 25 clock oscillator pulses supplied to command phase counter60. The details of command phase counter 60 are not illustrated sincethey form no part of the invention and are old and well known in theart. For example, reference may be had to U.S. Pat. No. 3,173,001,issued Mar. 9, 1965 to .l. T. Evans.

When a machine tool is operated, its temperature may rise substantiallyas a result of the heat that is generated by the friction that developsin the various mechanical components of the machine tool slides, such asthe bearing, gears and the motor. Such temperature variation results inthe expansion and contraction in. the length of the slide structure byreason of its coefficient of expansion. This expansion and contractionestablished position by reason of its expansion or contraction, an erroris introduced which is detrimental in automatic high precision types ofwork operations.

To facilitate describing the invention, a rate of longitudinalexpansionof 0.0001 of an inch per lineal inch has been arbitrarilyselected as schematically indicated in FIG. 9. As

there shown, the 40 inch range of movement indicated by the of travel tocompensate for the predetermined described rate of expansion.

In FIG. 9, a continuous angular line 192 graphically indicates thecumulative error for the 0.0001 per inch expansion in the absence ofcorrective command signals. The short, symmetricallyrepetitive,angularly inclined, individual lines, such as 193 and 194,illustrate the abortive effect produced by applying correctivecompensating signals every two lineal inches of travel. Thus, asindicated by the repetitive short vertical lines, such as 195 and 196,corrective command signals of 0.0002 of an inch compensate for a likeexpansion or elongation of the X-axis structure during predeterminedincrements of movement, in this case for each successive two inches oftravel along the X-axis.

To compensate for the 0.0001 of an inch per lineal inch thermalexpansion of the X-axis slide structure, compensating signals of 2pulses, for each successive 2 inches of travel along the X-axis, wasselected. These two pulses represent 0.0002 of an inch of compensation.To accomplish this amount of correction, the individual screw connectors152 of the compensation selectionmatrix 144 are placed between the fiveleads 1173 coming from conductor 117 and points 1468, 1478, 148B, 1493and 1508. This will effect the connection of the two, pulse, pulse trainto the matrix output conductors 146, 147, 148, 149 and 150. i

As the feed rate pulses to the count control 50 effect the I movement oftable 16 along the X'axis, the unit decade operates to displace the toolcarrying end of the spindle from the established reference position onthe machine tool slide. ln

counter 162 will by its changing flip-flop states allow matrix outputNOR gates 155, 156, 157, 158 and 159 to pass the two compensating pulsesthat are being carried by the various matrix output conductors. It wasdescribed earlier that the compensating flip-flop C is put into its setcondition at the end of every 0.0000 signal pulse, coming from the fourleast significant decades of the axis position register 39, and,subsequently, put back into its reset condition at the end of the fourthsubsequent clock pulse. Therefore, the compensating pulses are alwaysadded between the 0.0000 signal pulses, which occur at each inchmovement of table 16 travel, when the compensating flip-flop C is in itsset condition and there is a logic 0 signal being applied from the resetoutput terminal via conductor 142 to the various matrix output NOR gates164 and 165. If the commanded table position as registered on theposition command register is greater than the actual table position asregistered on the axis position register 39, then NOR gate 164 will passthe compensation pulses via conductor 167 to NOR gates 176 and 171, asshown in H0. 6. Under the above conditions, there being a logic 0 signalstanding on conductor-168, 186 and 187, the compensation pulses will bepassed by NOR'gates 1'71 and 176 to effect the adding of the equivalentof one clock oscillator pulse supplied to command phase counter 60,thereby advancing the phase of..the carrier signal by the amount of theadded clock pulse.

If the commanded position as registered on the position command register38 is less than the actual table position as registered on the axisposition register 39, then NOR gate will pass the compensation pulsesvia conductor 168 to NOR gate 176. Under the above conditions therebeing a logic 0 signal standing on conductor 167 and 186, thecompensation pulses will be passed by NOR gate 176 to block out one ofthe clock'oscillator pulses supplied to command phase counter 60,thereby retarding the generation and phase of the carrier signalprovided by command phase counter 60 by the amount of the one blockedclock oscillator pulse.

In the above example, the linear error compensator 78 is used to correcta positive linear elongation error caused by the thermal expansion ofthe X-axis slide structure. Compensator 78 could also be used to correcta negative linear error by switching conductor 168 from NOR gate 165 to164 and, in turn, switching conductor 167 from NOR gate 164 to NOR gate165.

Although the illustrative embodiment of the invention has been describedin considerable detail for the purpose of disclosing a practicaloperative structure whereby the invention may be practicedadvantageously, it is to be understood that the particular apparatusdescribed is intended to be illustrative only and that the novelcharacteristics of the invention may be incorporated in other structuralforms without departing from the spirit and scope of the invention asdefined in the subjoined claims.

The principles of this invention having now been fully explained inconnection with the foregoing description, I hereby claim as myinvention:

1. In a machine tool having a movable member;

drive means connected to effect relative positioning movement of saidmember;

a positioning control system including a source of control pulsesindividually representative of uniform increments of movement and beingoperable to regulate the operation of said drive means to effectaccurate positioning of said member;

an error compensator control operable to transmit a compensating signalto said numerical control system for modifying the number of saidcontrol pulses to compensate for positioning errors due to inaccuraciesin the machine structure;

first means in said error compensation control for producing a pluralityof pulse trains with each train providing a difierent number ofcompensating pulses; and

second means in said error compensation control to select one of saidpulse trains for insertion into said control system at a predeterminedposition of said movable member to compensate for a predeterminedinaccuracy of the machine at that position.

2. A machine tool according to claim 1,

wherein said second means provides for the selection of any one of saidpulse trains for insertion into said control system at differentpositions of said movable member to effect the compensation through theentire range of movement of said movable member at predeterminedintervals of movement.

3. A machine tool according to claim 1,

wherein said compensating pulses serve to add or subtract pulses in saidcontrol system depending upon the type of correction required to improvethe accuracy of the machine.

4. A machine tool according to claim 1,

wherein said second means comprises a compensation selector matrixsettable to select the desired pulse train for introduction into saidcontrol system upon completion of each predetermined increments ofmovement of said movable member.

UNITED STATES PATENT OFFICE CERTIFICATE OF CORRECTION Patent No.3,612,840 Dated October 12, 1971 Inventor(s) Richard stobb It iscertified that error appears in the above-identified patent and thatsaid Letters Patent are hereby corrected as shown below:

Column 2, line 23, "now" should read not Column 3, line 1 "produced"should read produces line 35, "electric" should read electrical line 45,insert for after "circuitry"; line 73, "axis" should read command Column4, line 14, "of should read or line 16, "One of the carrier signals isutilized as a phase reference signal.", should read One of the carriersignals is utilized as a reference signal. Column 6, line 12, after"corresponding to" should read the difference berween the phase of thetwo signals to digital to line 69, after reset" should read outputColumn 7, line 29, after "is" should read supplied Signed and sealedthis Qfith day of October 1972.

(SEAL) Attest:

EDWARD M.FLE'1CI-IER,JR. ROBERT GOI'ISCHALK Attesting OfficerCommissioner of Patents RM USCOMM-DC 6OS76-PB9 U S. GQVERNMENT PRIN'HNGOFFICE I I... 0-3..3l,

1. In a machine tool having a movable member; drive means connected toeffect relative positioning movement of said member; a positioningcontrol system including a source of control pulses individuallyrepresentative of uniform increments of movement and being operable toregulate the operation of said drive means to effect accuratepositioning of said member; an error compensator control operable totransmit a compensating signal to said numerical control system formodifying the number of said control pulses to compensate forpositioning errors due to inaccUracies in the machine structure; firstmeans in said error compensation control for producing a plurality ofpulse trains with each train providing a different number ofcompensating pulses; and second means in said error compensation controlto select one of said pulse trains for insertion into said controlsystem at a predetermined position of said movable member to compensatefor a predetermined inaccuracy of the machine at that position.
 2. Amachine tool according to claim 1, wherein said second means providesfor the selection of any one of said pulse trains for insertion intosaid control system at different positions of said movable member toeffect the compensation through the entire range of movement of saidmovable member at predetermined intervals of movement.
 3. A machine toolaccording to claim 1, wherein said compensating pulses serve to add orsubtract pulses in said control system depending upon the type ofcorrection required to improve the accuracy of the machine.
 4. A machinetool according to claim 1, wherein said second means comprises acompensation selector matrix settable to select the desired pulse trainfor introduction into said control system upon completion of eachpredetermined increments of movement of said movable member.